<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- <input type="text" v-model="msg"> -->

        <!-- 仅仅只是设置value属性，只不过说设置的时候跟msg做绑定而已 -->
        <!-- 没有拿到输入的内容 -->
        <!-- <input type="text" v-bind:value="msg"> -->

        <!-- 只能实现获取界面上输入的内容 -->
        <!-- <input type="text" v-bind:value="msg" @input="fn"> -->

        <!-- 这就是v-model绑定的原理 -->
        <!-- 
            所以原理可以总结为：
                由两个指令组合而来： v-bind:value  一个是 v-on:input
            所以像v-model这种语法我们称之为语法糖
            语法糖：一句代码，内部相当于帮你生成大段代码
         -->
        <!-- <input type="text" :value="msg" @input="msg = $event.target.value">  -->

        <!-- <input type="text" v-model.lazy="msg"> -->
         <!-- 其实加.lazy就是把事件从input变成了change -->
        <input type="text" :value="msg" @change="msg = $event.target.value">


        <p>{{ msg }}</p>
    </div>

    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data() {
                return {
                    msg: '你坏'
                }
            },
            methods: {
                fn (e) {
                    this.msg = e.target.value
                },

                fn2 () {
                    console.log('...')
                }
            }
            
        })
    </script>
</body>
</html>